﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace Client.Encriptacion.logica
{
    class Permutar
    {
        //constructor
        Permutar() { }

        //metodo
        public static BitArray permutar(BitArray entrada, int [] cajaDePermutacion)
        {
            BitArray nueva = new BitArray(56);
            int indice;
            for (int i = 1; i < entrada.Length + 1; i++)
            {
                indice = cajaDePermutacion[i - 1];
                if (indice > 8 && indice < 17)
                    indice -= 1;
                else if (indice > 16 && indice < 25)
                    indice -= 2;
                else if (indice > 24 && indice < 33)
                    indice -= 3;
                else if (indice > 32 && indice < 41)
                    indice -= 4;
                else if (indice > 40 && indice < 49)
                    indice -= 5;
                else if (indice > 48 && indice < 57)
                    indice -= 6;
                else if (indice > 56)
                    indice -= 7;
                nueva[i-1] = entrada[indice - 1];
                
            }
            //IO.ImprimeBitArray(nueva, 7);
            return nueva;            
        }


        public static BitArray permutarBien(BitArray entrada, int[] cajaDePermutacion)
        {
            BitArray nueva = new BitArray(cajaDePermutacion.Length);
            int index;
            for (int i = 1; i < cajaDePermutacion.Length + 1; i++)
            {
                index = cajaDePermutacion[i - 1];
                nueva[i - 1] = entrada[index - 1];

            }
            //IO.ImprimeBitArray(nueva, 6);
            //IO.ImprimeBitArray(nueva, 8);
            return nueva;
        }
    }
}
